import ToolRequest from '@/base/newToolAxios';
import RequestOption from '@/base/RequestOption';
import { getActToolUrl } from '@/base/constant';

const tr = new ToolRequest();

export default class CourseDao {
  /**
   * 查询跟教师用户相关的所有课程
   *
   * @param userId 用户id
   * @param currentPage   当前页数
   * @param pageSize      每页大小
   * @return 课程信息与关联的项目和教师用户
   */
  async findCoursesByUserId(
    userId: number,
    courseName: string,
    currentPage: number,
    pageSize: number
  ) {
    const ro = new RequestOption();
    return await tr.get(
      getActToolUrl(),
      {
        action: 'findCoursesByUserId',
        userId: userId,
        courseName: courseName,
        currentPage: currentPage,
        pageSize: pageSize
      },
      ro
    );
  }
  /**
   * 根据课程ID、课程名称查询课程。
   * 如果提供了课程ID，则根据课程ID查找用户并返回单个课程的列表（或空列表如果未找到）。
   * 如果未提供课程ID但提供了课程名称，则根据课程名称查找课程并返回匹配的课程列表（或空列表如果未找到）。
   * 注意：2个参数只能选择一个进行匹配，优先ID。
   *
   * @param {number} courseId   课程ID。
   * @param {string} courseName 课程名。
   * @return 查找到的课程列表，如果未找到则返回空列表。
   */
  async findCourse(courseId: number, courseName: string) {
    const ro = new RequestOption();
    return await tr.get(
      getActToolUrl(),
      {
        action: 'findCourse',
        courseId: courseId,
        courseName: courseName
      },
      ro
    );
  }
}
